The present invention relates generally to computer processing, and more particularly to techniques for maintaining software objects during an upgrade of a database.
Many complex software applications have been created to assist business enterprises manage and operate their businesses. An important class of such software applications focuses in the area of customer relationship management (CRM). A CRM application allows an enterprise to maintain track of various entities such as contacts, products, activities, service requests, and so on, and to define the relationships between the entities with sets of rules (e.g., business opportunities). Each entity and business function may be implemented as an object, which may represent a collection of data and functions that describe the entity or business function as well as the operations capable of being performed on or by the entity or business function. The objects are typically stored in a database that may be accessed by various software applications and via various channels (i.e., communication means).
A database is typically implemented with a particular schema and binaries. The schema describes the organization and format of the database, e.g., the tables used to identify and describe the data stored in the database and the relationships between the tables. The binaries represent the actual data, which is typically stored in the format specified by the schema.
A database may be revised or upgraded over time to provide enhanced features and functionality, and to possibly remedy any prior deficiencies. The new database may be associated with a new schema and binaries. Conventionally, a database may be upgraded to a new version by (1) bringing the database offline to prevent modification to the data in the database and (2) executing an upgrade software application that generates the new schema and binaries for an upgraded database based on the schema and binaries for the original database. The upgrade software application effectively transforms the original database to the upgraded database.
For some business enterprises, it may be preferable or necessary to support access and modification of at least some of the objects in the original database during the time the upgrade process is performed. Thus, techniques that can be used to upgrade a database while at the same time allow for modification of certain objects are highly desirable.